package com.ohc.leetcode.栈.repeat;


import java.util.Stack;

/**
 * 2022年4月13日19:41:31
 */
public class 有效的括号02 {

    public static boolean isValid(String s) {
        Stack<Character> stack = new Stack();
        char ch;
        for (int i = 0; i < s.length(); i++) {
            ch = s.charAt(i);
            if ('(' == ch) {
                stack.push(')');
            } else if ('{' == ch) {
                stack.push('}');
            } else if ('[' == ch) {
                stack.push(']');
                // 这里说明是右，并且栈内没有左括号，所以false 或者 括号不匹配
            } else if (stack.empty() || stack.peek() != ch) {
                return false;
            }
            // 这里栈不为空 并且 括号匹配了，就弹栈
            else {
                stack.pop();
            }
        }
        return stack.isEmpty();
    }

    public static void main(String[] args) {
        boolean valid = isValid("()");
        System.out.println("valid = " + valid);
    }

}
